// commitlint.config.js
module.exports = {
  extends: ['@commitlint/config-conventional'],
  rules: {
    // 提交类型必须为小写
    'type-case': [2, 'always', 'lower-case'],

    // 自定义允许的提交类型
    'type-enum': [
      2,
      'always',
      [
        'feat', // 新功能
        'fix', // 修复 bug
        'docs', // 文档变更
        'style', // 代码格式（不影响代码运行）
        'refactor', // 代码重构（非功能变更）
        'perf', // 性能优化
        'test', // 测试相关
        'build', // 构建流程/外部依赖变更
        'ci', // CI 配置变更
        'chore', // 其他杂项（不修改 src 或测试文件）
        'revert', // 回退提交
        'wip' // 开发中提交（可选类型）
      ]
    ],

    // 提交作用域最大长度限制
    'scope-max-length': [2, 'always', 30],

    // 提交信息主体最大长度（建议与 Prettier 的 printWidth 一致）
    'subject-max-length': [2, 'always', 100]
  },
  prompt: {
    alias: { fd: 'docs: fix typos' }, // 提交别名
    types: [
      { value: 'feat', name: 'feat:  🤩 新增功能 | A new feature', emoji: ':sparkles:' },
      { value: 'fix', name: 'fix:   🐛 修复缺陷 | A bug fix', emoji: ':bug:' },
      { value: 'docs', name: 'docs:  📝 文档更新 | Documentation only changes', emoji: ':memo:' },
      {
        value: 'style',
        name: 'style: 🎨 代码格式 | Changes that do not affect the meaning of the code',
        emoji: ':lipstick:'
      },
      {
        value: 'refactor',
        name: 'refactor:  ♻️  代码重构 | A code change that neither fixes a bug nor adds a feature',
        emoji: ':recycle:'
      },
      {
        value: 'perf',
        name: 'perf:  ⚡ 性能提升 | A code change that improves performance',
        emoji: ':zap:'
      },
      {
        value: 'test',
        name: 'test:  ✅ 测试相关 | Adding missing tests or correcting existing tests',
        emoji: ':white_check_mark:'
      },
      {
        value: 'build',
        name: 'build:  📦️ 构建相关 | Changes that affect the build system or external dependencies',
        emoji: ':package:'
      },
      {
        value: 'ci',
        name: 'ci:  🎡 持续集成 | Changes to our CI configuration files and scripts',
        emoji: ':ferris_wheel:'
      },
      { value: 'revert', name: 'revert:  ⏪️ 回退代码 | Revert to a commit', emoji: ':rewind:' },
      {
        value: 'chore',
        name: 'chore:  🔨 其他修改 | Other changes that do not modify src or test files',
        emoji: ':hammer:'
      }
    ],
    // 是否使用表情符号
    useEmoji: true,
    // 表情符号对齐方式
    emojiAlign: 'center',
    // 是否使用AI辅助
    useAI: false,
    // AI辅助的编号
    aiNumber: 1,
    // 主题颜色代码
    themeColorCode: '',
    // 作用域列表
    scopes: [],
    // 是否允许自定义作用域
    allowCustomScopes: true,
    // 是否允许空作用域
    allowEmptyScopes: true,
    // 自定义作用域的对齐方式
    customScopesAlign: 'bottom',
    // 自定义作用域的别名
    customScopesAlias: 'custom',
    // 空作用域的别名
    emptyScopesAlias: 'empty',
    // 是否将主题首字母大写
    upperCaseSubject: false,
    // 标记破坏性变更的模式
    markBreakingChangeMode: false,
    // 允许标记为破坏性变更的类型
    allowBreakingChanges: ['feat', 'fix'],
    // 折行数量
    breaklineNumber: 100,
    // 折行字符
    breaklineChar: '|',
    // 跳过的提问
    skipQuestions: [],
    // 问题前缀列表
    issuePrefixes: [
      // 如果使用 gitee 作为开发管理
      { value: 'link', name: 'link:     链接 ISSUES 进行中' },
      { value: 'closed', name: 'closed:   标记 ISSUES 已完成' }
    ],
    // 自定义问题前缀的对齐方式
    customIssuePrefixAlign: 'top',
    // 空问题前缀的别名
    emptyIssuePrefixAlias: 'skip',
    // 自定义问题前缀的别名
    customIssuePrefixAlias: 'custom',
    // 是否允许自定义问题前缀
    allowCustomIssuePrefix: true,
    // 是否允许空问题前缀
    allowEmptyIssuePrefix: true,
    // 是否彩色确认
    confirmColorize: true,
    // 作用域覆盖
    scopeOverrides: undefined,
    // 默认正文
    defaultBody: '',
    // 默认问题
    defaultIssues: '',
    // 默认作用域
    defaultScope: '',
    // 默认主题
    defaultSubject: ''
  }
}
